/**
 * 座席CTI控制器
 * @since 1.0 2014-12-4
 */
function agent_cti_manager_init() {

    // 点击监听按钮
    $('#agent_cti_manager_toolbar .extension-monitor').click(function () {
        return false;
    })
    // 点击保持恢复按钮
    $('#agent_cti_manager_toolbar .extension-callpark').click(function () {
        extension_jsonp_event($(this).attr('href'), 'extension_jsonp_handler');
        return false;
    })

    // 点击挂机按钮
    $('#agent_cti_manager_toolbar .extension-handup').click(function () {
        extension_jsonp_event($(this).attr('href'), 'extension_jsonp_handler');
        return false;
    })
    // 点击呼出按钮
    $('#agent_cti_manager_toolbar .extension-dialout').click(function () {
        var phone = $(this).prev().val();
        if (!phone) {
            alert('号码未填写!');
            return false;
        }
        var url = $(this).attr('href').replace('varphone', phone);
        extension_jsonp_event(url, 'extension_dialout_jsonp');
        return false;
    })
    // 点击会议按钮
    $('#agent_cti_manager_toolbar .extension-meeting').click(function () {
        return false;
    })

    // 点击示闲示忙按钮
    $('#agent_cti_manager_toolbar .extension-pause').click(function () {
        extension_jsonp_event($(this).attr('href'), 'extension_jsonp_handler');
        return false;
    })

    // 点击签入签出按钮
    $('#agent_cti_manager_toolbar .extension-sign').click(function () {
        extension_jsonp_event($(this).attr('href'), 'extension_jsonp_handler');
        return false;
    })
    // 点击刷新状态按钮
    $('#agent_cti_manager_toolbar .extension-refresh-state').click(function () {
        extension_get_state();
        return false;
    })
    extension_get_state();

    // 座席来电弹屏 2014-12-16 by sutroon
    function extension_screen_popup() {
        extension_jsonp_event($('#extension-screen-popup-url').val(), 'extension_screen_popup_jsonp');
    }
    extension_screen_popup();
    setInterval(extension_screen_popup, 2000);
}

// 获取座席状态
function extension_get_state() {
    var url = $('#agent_cti_manager_toolbar .extension-refresh-state').attr('href');
    extension_jsonp_event(url, 'extension_get_state_jsonp');
}

/**
 * 获取座席状态处理方法
 * @param {type} data
 * @returns {undefined}
 */
function extension_get_state_jsonp(data) {
    $('#extension-status').text(data);
}

/**
 * 来电弹屏处理方法
 * @param json data
 * @returns {undefined}
 * @since 1.0 2014-12-16 by sutroon
 */
function extension_screen_popup_jsonp(data) {
    if (!data || !data.lineNum) {
        return; // 如果没有电话号码则返回,用于修正手拨电话联系弹出两次窗口的问题 2015-1-2 by sutroon
    }
    var $a = $('#call-reminder');
    var url = $a.data('url');
    var show = $a.data('show');
    var type = $a.data('type'); // 1=跳转客户;2=消息提醒
    if (!url) {
        alert('链接无效');
        return;
    }
    url = url.replace('vartel', data.lineNum);
    if ('2' == type) {
        $a.attr('href', url).data('line',data.lineNum).show();
        return;
    }
    if (!show || 'dialog' == show) {
        show = 'dialog';
    } else {
        show = 'page';
    }
    if ('page' == show) {
        mditab.add_tab({title: '来电:' + data.lineNum, url: url, menu_id: 500, refresh_on_active: true, add_history: false});
        //$('#main').attr('src', "about:blank").attr('src', url).load(function () {
        //    setIframeHeight();
        //});
    } else {
        open_dialog(url, {}, undefined, 'customer-popup', 5);
    }
}

/**
 * 座席外呼处理方法
 * @param json data
 * @returns {undefined}
 * @since 1.0 2014-12-16 by sutroon
 */
function extension_dialout_jsonp(data) {
    if (data.success == '1') {
        var tel = $('#agent_cti_manager_toolbar .extension-dialout').prev().val();
        extension_screen_popup_jsonp({'lineNum': tel});
    } else {
        $.somessager.alert('错误', data.message);
    }
}

/**
 * jsonp事件
 * @param string url url
 * @param string handler 处理方法,如 extension_screen_popup_jsonp
 * @returns {undefined}
 * @since 1.0 2014-12-16 by sutroon
 */
function extension_jsonp_event(url, handler) {
    if (!url) {
        return;
    }
    $.ajax({url: url.replace('.html', '/jsonp/' + handler + '.html'), dataType: "jsonp", jsonp: handler, beforeSend: function () {
            ajax_show_loading(false);
        }});
}

/**
 * 座席通用jsonp处理方法
 * @param {type} data
 * @returns {undefined}
 * @since 1.0 2014-12-16 by sutroon
 */
function extension_jsonp_handler(data) {
    if (data.success == '1') {
        extension_get_state();
        $.somessager.alert('消息', '操作成功!');
    } else {
        $.somessager.alert('错误', data.message);
    }
}